home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: Franz PD / Franz PD Disk #288 (1993)(Rhein-Sieg-Soft).zip / Franz PD Disk #288 (1993)(Rhein-Sieg-Soft).adf / Papier.Schere / PSS.LST < prev    next >
File List  |  1992-04-18  |  16KB  |  491 lines

  1. ' **********************************
  2. ' *  Papier, Schere und Stein V1.0 *
  3. ' *  © 20.3.1992 by Henry König    *
  4. ' *  2 Hamburg 53, Bornheide 71    *
  5. ' **********************************
  6. init
  7. menueein
  8. info
  9. programmkopf
  10. anweisung(1)
  11. ON MENU GOSUB menÜkontrolle
  12. REPEAT                          !
  13.   SLEEP
  14. UNTIL ende!
  15. CLOSEW #1
  16. CLOSES 1
  17. END                             ! system
  18. PROCEDURE abfrage.ja
  19.   y$="J"
  20.   abfragen
  21. RETURN
  22. PROCEDURE abfrage.nein
  23.   y$="N"
  24.   abfragen
  25. RETURN
  26. PROCEDURE abfragen
  27.   anweisung(aw%)
  28.   anweisung(18)
  29.   CLR x%
  30.   mausk%=0
  31.   ay%=ay%(aw%)+5+LEN(aw$(aw%))
  32.   ay%=ay%*8-16                  ! Rechtswert
  33.   ax%=ax%(aw%)*8-12             ! Hochwert
  34.   COLOR 2                       ! schwarz
  35.   BOX ay%,ax%,ay%+64,ax%+14
  36.   COLOR 4                       ! hellgrau
  37.   LINE ay%+1,ax%+1,ay%+63,ax%+1
  38.   LINE ay%,ax%+1,ay%,ax%+14
  39.   WHILE mausk%<>2 AND x%<>13
  40.     IF y$="J" THEN
  41.       COLOR 2
  42.       LOCATE ay%(aw%)+5+LEN(aw$(aw%)),ax%(aw%)
  43.       textstil(7,3,6)           ! Invers
  44.       PRINT " J ";
  45.       textstil(0,1,0)           ! Invers aus
  46.       PRINT " N ";
  47.       y$="J"
  48.     ELSE
  49.       LOCATE ay%(aw%)+5+LEN(aw$(aw%)),ax%(aw%)
  50.       textstil(0,1,0)           ! Invers aus
  51.       PRINT " J ";
  52.       textstil(7,3,6)           ! Invers
  53.       PRINT " N ";
  54.       y$="N"
  55.     ENDIF
  56.     taste
  57.     IF x%=155                   ! Sondertaste
  58.       x%=ASC(MID$(x$,2,1))      ! ASCII-Wert
  59.       IF x%=63 THEN             ! Help-Taste?
  60.         textstil(0,1,0)         ! Invers ausschalten
  61.       ENDIF
  62.     ENDIF
  63.     IF UPPER$(x$)="J" THEN
  64.       y$="J"
  65.     ELSE IF UPPER$(x$)="N"
  66.       y$="N"
  67.     ENDIF
  68.     IF mausy%=ax%(aw%) THEN     ! Abfragefeld (Zeile) angeklickt?
  69.       IF mausx%-1>ay%(aw%)+3+LEN(aw$(aw%)) AND mausx%-1<ay%(aw%)+8+LEN(aw$(aw%)) THEN
  70.         y$="J"
  71.       ELSE IF mausx%-1>ay%(aw%)+7+LEN(aw$(aw%)) AND mausx%-1<ay%(aw%)+11+LEN(aw$(aw%))
  72.         y$="N"
  73.       ENDIF
  74.     ELSE
  75.       x1%=ASC(MID$(x$,2,1))-37
  76.       IF x1%=30 THEN            ! Cursor rechts?
  77.         y$="N"                  ! ja, dann nein gewahlt
  78.       ELSE IF x1%=31            ! Cursor links?
  79.         y$="J"                  ! ja, dann ja gewahlt
  80.       ENDIF
  81.     ENDIF
  82.   WEND
  83.   textstil(0,1,0)               ! Invers aus
  84.   programmfuss
  85. RETURN
  86. PROCEDURE anweisung(aw%)
  87.   PRINT AT(4,ax%(aw%));SPACE$(74) ! Zeile löschen
  88.   PRINT AT(ay%(aw%),ax%(aw%));aw$(aw%) ! Anweisung ausgeben
  89. RETURN
  90. PROCEDURE beenden               ! Programm beenden
  91.   ALERT 0,"Wollen Sie aufhören",1,"Ende|Weiter",wahl%
  92.   ende!=(wahl%=1)
  93. RETURN
  94. PROCEDURE lese.umenue(un%)
  95.   FOR jj%=1 TO un%
  96.     READ uy%(jj%),ux%(jj%),ux$(jj%)
  97.   NEXT jj%
  98. RETURN
  99. PROCEDURE menÜausgeben          ! Untermenü anzeigen
  100.   IF um%<1 OR um%>un% THEN      ! Menüpunkt außerhalb des Bereiches
  101.     um%=1                       ! ja, dann Menuepunkt = 1
  102.   ENDIF
  103.   COLOR 4                       ! hellgrau
  104.   LINE 16,(28*8)-12,633-12,(28*8)-12  !  Linie
  105.   COLOR 2
  106.   LINE 16,(28*8)+2,633-12,(28*8)+2
  107.   FOR jj%=1 TO un%              ! Menüs anzeigen
  108.     COLOR 4                     ! hellgrau
  109.     LINE uy%(jj%)*8-12,ux%(jj%)*8-12,uy%(jj%)*8-12,ux%(jj%)*8+1
  110.     PCOLOR 5,0
  111.     PRINT AT(uy%(jj%),ux%(jj%));ux$(jj%)
  112.     PCOLOR 1,0
  113.   NEXT jj%
  114.   LOCATE uy%(um%),ux%(um%)
  115.   textstil(7,3,6)               ! Menüpunkt invers darstellen
  116.   PRINT ux$(um%)
  117.   textstil(0,1,0)               ! Invers aus
  118. RETURN
  119. PROCEDURE menÜkontrolle         ! Hauptmenü
  120.   mn%=MENU(0)                   ! Menüpunkt
  121.   SELECT mn%
  122.   CASE 1
  123.     info                        ! Info ausgeben
  124.   CASE 2
  125.     spielen                     ! Spiel starten
  126.   CASE 3
  127.     beenden                     ! Programm beenden
  128.   ENDSELECT
  129.   programmkopf
  130.   anweisung(1)
  131. RETURN
  132. PROCEDURE menÜkontrolle1        ! Datenpflegemenü
  133.   anweisung(aw%)
  134.   WHILE mausk%<>2 AND x%<>13
  135.     menÜausgeben
  136.     taste
  137.     IF mausy%=28 THEN
  138.       menÜnummer
  139.     ELSE IF x%<>13
  140.       x%=ASC(MID$(x$,2,1))-37
  141.       IF x%=30                  ! Cursor rechts
  142.         INC um%
  143.       ELSE IF x%=31             ! Cursor links
  144.         DEC um%
  145.       ENDIF
  146.       IF um%<1 THEN
  147.         um%=un%
  148.       ELSE IF um%>un%
  149.         um%=1
  150.       ENDIF
  151.     ENDIF
  152.     FOR j1%=1 TO un%
  153.       IF LEFT$(x$,1)=MID$(ux$(j1%),1,1) THEN
  154.         um%=j1%
  155.       ENDIF
  156.     NEXT j1%
  157.   WEND
  158.   CLR x%
  159. RETURN
  160. PROCEDURE menÜnummer            ! Menünummer des angekl. Menüpkt. berechn.
  161.   FOR jj%=1 TO un%
  162.     IF mausx%>=uy%(jj%) AND mausx%<=uy%(jj%)+LEN(ux$(jj%)) THEN ! Spalte
  163.       um%=jj%
  164.     ENDIF
  165.   NEXT jj%
  166. RETURN
  167. PROCEDURE programmkopf
  168.   CLS
  169.   COLOR 2                       ! schwarze Box
  170.   PBOX 1,1,639,20
  171.   COLOR 0                       ! grau
  172.   PBOX 6,4,633,17
  173.   COLOR 4                       ! hellgrau
  174.   LINE 6,4,633,4
  175.   LINE 6,4,6,17
  176.   PCOLOR 5,0
  177.   PRINT AT(20,2);"Papier, Schere und Stein. Version 1.00"
  178.   PCOLOR 1,0
  179.   programmfuss
  180. RETURN
  181. PROCEDURE programmfuss          ! Anweisungsboxen zeichnen
  182.   COLOR 2                       ! schwarz
  183.   PBOX 1,(27*8)-10,639,(32*8)   ! schwarze Box
  184.   COLOR 0                       ! grau
  185.   PBOX 6,(27*8)-7,633,(28*8)+4  ! graue Box
  186.   PBOX 6,(29*8)+2,633,(32*8)-4  ! 2. graue Box
  187.   COLOR 4                       ! hellgrau
  188.   BOX 7,(27*8)-7,633,(32*8)-3
  189.   LINE 7,(29*8)+2,633,(29*8)+2
  190.   LINE 16,(29*8)-6,639-16,(29*8)-6
  191.   LINE 16,(29*8)+5,639-16,(29*8)+5
  192.   LINE 639-16,(29*8)-6,639-16,(26*8)+4  ! senkrechter Strich
  193.   LINE 16,(29*8)+5,16,(31*8)+2  ! senkrechter Strich
  194.   COLOR 2                       ! schwarz
  195.   LINE 7,(32*8)-3,633,(32*8)-3  ! schwarze Linie
  196.   LINE 633,(27*8)-7,633,(32*8)-3
  197.   LINE 16,(27*8)-4,639-16,(27*8)-4
  198.   LINE 16,(31*8)+2,639-16,(31*8)+2
  199.   LINE 16,(29*8)-6,16,(26*8)+4  ! senkrechter Strich
  200.   LINE 639-16,(29*8)+5,639-16,(31*8)+2    ! senkrechter Strich
  201. RETURN
  202. PROCEDURE taste                 ! ein Zeichen von der Tastatur holen
  203.   CLR x%                        ! Steuerzeichen löschen
  204.   CLR mausk%
  205.   CLR mausx%                    ! Mausspalte löschen
  206.   CLR mausy%                    ! Mauszeile löschen
  207.   WHILE x%=0 AND MOUSEK=0
  208.     x$=INKEY$                   ! Zeichen von Tastatur
  209.     x%=ASC(x$)                  ! ASCII-Wert für Auswertung
  210.   WEND
  211.   IF MOUSEK<>0 THEN             ! linke Maustaste
  212.     mausx%=INT(MOUSEX/8)+1      ! ja, dann Spalte = mausx
  213.     mausy%=INT(MOUSEY/8)+1      ! Zeile = mausy
  214.     mausk%=MOUSEK               ! Maustaste
  215.   ENDIF
  216. RETURN
  217. PROCEDURE tastendruck
  218.   PRINT AT(4,28);SPACE$(74);
  219.   PCOLOR 5,0
  220.   PRINT AT(18,28);" Weiter mit beliebiger Taste oder Mausklick."
  221.   GOSUB taste
  222.   PCOLOR 1,0
  223.   PRINT AT(4,28);SPACE$(74)
  224. RETURN
  225. PROCEDURE textstil(stil%,vfarbe%,hfarbe%)
  226.   par$=STR$(stil%)+";"+STR$(30+vfarbe%)+";"+STR$(40+hfarbe%)
  227.   PRINT CHR$(&H9B);par$;CHR$(&H6D);
  228. RETURN
  229. PROCEDURE init.variable
  230.   DIM ax%(at%),ay%(at%),aw$(at%)! Anweisungstexte und Position
  231.   DIM menue$(40)                ! Anzahl der Menüs
  232.   DIM ux%(un%),uy%(un%),ux$(un%)! Eingabe-Menüs
  233. RETURN
  234. PROCEDURE menueein              ! Menüs einschalten
  235.   MENU KILL
  236.   RESTORE menue.daten
  237.   FOR menue%=0 TO 50
  238.     READ x$
  239.     EXIT IF x$="*"
  240.     menue$(menue%)=x$
  241.   NEXT menue%
  242.   DEC menue%                    !
  243.   menue$(menue%+6)=""
  244.   menue$(menue%+7)=""
  245.   MENU menue$()
  246. RETURN
  247. PROCEDURE daten                 ! Daten für Menüs und Anweisungen
  248.   um1:
  249.   DATA  4,28,"   Papier    "
  250.   DATA 18,28,"   Schere    "
  251.   DATA 32,28,"   Stein     "
  252.   DATA 46,28,"   Ende      "
  253.   DATA 60,28," Spielstärke "
  254.   '
  255.   DATA 31, 5,"Variable Anweisung",0
  256.   DATA 31, 4,"Bitte wählen Sie einen Menüpunkt. © 1992 (20.3.92) by Henry König",1
  257.   DATA 31, 4,"Anwahl = linke Maustaste, Cursor. Start = rechte Maustaste, RETURN",2
  258.   DATA 28,20,"",3
  259.   DATA 28,10,"",4
  260.   DATA 28, 4,"",5
  261.   um2:
  262.   menue.daten:
  263.   DATA " Projekt "
  264.   DATA "+I Info                 "
  265.   DATA " Spiel starten "
  266.   DATA "+Q Programm beenden "
  267.   DATA ""
  268.   DATA "*"
  269. RETURN
  270. PROCEDURE farben.setzen
  271.   SETCOLOR 0,5,5,5              ! grau statt blau
  272.   SETCOLOR 1,15,15,15           ! weiß bleibt
  273.   SETCOLOR 2,0,0,0              ! schwarz erhalten
  274.   SETCOLOR 3,15,5,0             ! rot bleibt
  275.   SETCOLOR 4,10,10,10           ! hellgrau inverse Farbe im Filerequester
  276.   SETCOLOR 5,15,15,0            ! gelb
  277.   SETCOLOR 6,0,0,0              ! schwarz = Inverse Farbe im Filerequester
  278. RETURN
  279. PROCEDURE info
  280.   programmkopf
  281.   PCOLOR 5,0
  282.   PRINT AT(1,5);"Papier, Schere und Stein";
  283.   PCOLOR 1,0
  284.   PRINT " ist ein einfaches Knobelspiel."
  285.   PRINT AT(1,7);"Während Sie Papier, Schere oder Stein wählen habe ich bereits gewählt."
  286.   PRINT AT(1,9);"Ich mogel nicht! Aus dem gesamten Spielverlauf berechne ich nach der"
  287.   PRINT AT(1,11);"Wahrscheinlichkeit Ihre nächste Auswahl."
  288.   PRINT AT(1,13);"Die Spielregeln:"
  289.   PRINT AT(1,15);"Das Papier umwickelt den Stein."
  290.   PRINT AT(1,17);"Die Schere zerschneidet das Papier."
  291.   PRINT AT(1,19);"Der Stein schleift die Schere."
  292.   PRINT AT(1,21);"Gleiche Auswahl ist ein Unentschieden."
  293.   PCOLOR 3,0
  294.   PRINT AT(10,23);"(c) 1992 by Henry König, Bornheide 71, 2000 Hamburg 53"
  295.   PCOLOR 1,0
  296.   PRINT AT(1,25);"Dieses Programm darf kopiert und in jede PD-Serie übernommen werden."
  297.   tastendruck
  298. RETURN
  299. PROCEDURE init                  ! Programm initialisieren
  300.   ' ON ERROR GOSUB fehler
  301.   MODE 0
  302.   un%=5                         ! Anzahl der Datenpflegemenüs
  303.   at%=5                         ! Anzahl der Anweisungen
  304.   sz%=4                         ! Startzeile der Bildschirmausgabe
  305.   hist$=""
  306.   CLR htot%                     ! Spieler löschen
  307.   CLR ctot%                     ! Computer löschen
  308.   breite%=640                   ! Screenbreite
  309.   hoehe%=256                    ! Screenhöhe
  310.   ebenen%=3                     ! 3 Bitplanes
  311.   OPENS 1,0,0,breite%,hoehe%,ebenen%,&H8000
  312.   OPENW #1,0,0,breite%,hoehe%,&H18,&H1800,1
  313.   farben.setzen                 ! Farbpalette setzen
  314.   LPOKE ADD(FindTask(0),184),WINDOW(1)! Requester auf GFA-Screen umlenken
  315.   init.variable                 ! Variable initialisieren
  316.   lese.umenue(un%)
  317.   FOR j%=0 TO at%
  318.     READ ax%(j%),ay%(j%),aw$(j%),dummy%
  319.   NEXT j%
  320. RETURN
  321. PROCEDURE spielen               !
  322.   spielstaerke%=1               ! Spielstärke mit Lernmodus
  323.   programmkopf
  324.   WHILE NOT ende!               !
  325.     PCOLOR 5,0                  ! gelb
  326.     PRINT AT(20,6);"Spielstärke ";spielstaerke%
  327.     PCOLOR 1,0                  ! weiß
  328.     IF spielstaerke%=1 THEN     ! Spielstärke mit Lernmodus
  329.       lernmodus                 ! ja, dann Auswahl mit Lernmodus
  330.     ELSE                        ! einfache Spielstärke
  331.       auswahl                   ! Auswahl per Zufall
  332.     ENDIF
  333.     i$=""                       ! Eingangswert für die Schleife
  334.     WHILE i$="" OR INSTR("psf",i$)=0
  335.       CLR mausk%                ! letzten Mausdruck löschen
  336.       aw%=2                     ! Anweisung zur Steuerung ausgeben
  337.       menÜkontrolle1            ! Untermenü anzeigen
  338.       SELECT um%                ! Nummer des Menüpunktes
  339.       CASE 1
  340.         i$="p"                  ! Papier gewählt
  341.         w$="Papier"
  342.       CASE 2
  343.         i$="s"                  ! Schere
  344.         w$="Schere"
  345.       CASE 3
  346.         i$="f"                  ! Stein
  347.         w$="Stein"
  348.       CASE 4
  349.         beenden                 ! Programm beenden
  350.         IF ende! THEN           ! Ende gewählt
  351.           CLOSEW #1             ! Fenster schließene
  352.           CLOSES 1              ! Screen schließen
  353.           END                   ! system
  354.         ENDIF
  355.       CASE 5
  356.         spielstaerke            ! Spielstärke abfragen
  357.         CLR um%                 ! Menüpunkt löschen
  358.       ENDSELECT
  359.     WEND
  360.     programmfuss
  361.     IF um%>0 THEN               ! gültige Auswahl
  362.       PRINT AT(2,10);"Bevor Du ";
  363.       PCOLOR 5,0
  364.       PRINT w$;
  365.       PCOLOR 1,0
  366.       PRINT " gewählt hast, habe ich ";
  367.       PCOLOR 5,0
  368.       PRINT c$;
  369.       PCOLOR 1,0
  370.       PRINT " gewählt."
  371.       h$=h$+UPPER$(m$)+i$       ! Auswahl merken
  372.       x$=i$+m$
  373.       PRINT AT(2,12);SPACE$(77) !
  374.       IF m$=i$ THEN
  375.         PRINT AT(2,12);"Unendschieden"
  376.       ELSE
  377.         IF x$="sp" OR x$="pf" OR x$="fs" THEN
  378.           INC spkt%             ! Spielerpunkte addieren
  379.           PRINT AT(2,12);"Du gewinnst"
  380.         ELSE
  381.           INC cpkt%             ! Computerpunkte addieren
  382.           PRINT AT(2,12);"Ich gewinne"
  383.         ENDIF
  384.       ENDIF
  385.       PRINT AT(2,14);"Ich habe ";
  386.       PCOLOR 5,0
  387.       PRINT cpkt%;
  388.       PCOLOR 1,0
  389.       PRINT " Punkte. Du hast ";
  390.       PCOLOR 5,0
  391.       PRINT spkt%;
  392.       PCOLOR 1,0
  393.       PRINT " Punkte."
  394.     ENDIF
  395.   WEND
  396. RETURN
  397. PROCEDURE lernmodus             ! Auswahl berechnen
  398.   CLR p%                        ! Papier löschen
  399.   CLR st%                       ! Stein löschen
  400.   CLR s%                        ! Schere löschen
  401.   tf%=1                         ! Tiefe
  402.   lg%=LEN(h$)                   ! Länge der Zugvariable
  403.   fertig%=FALSE                 ! Eingangswert für die Schleife
  404.   WHILE NOT fertig%
  405.     IF tf%<=lg% THEN
  406.       su$=RIGHT$(h$,tf%)        ! Suchzeichenfolge
  407.       i%=1                      ! 1. Zeichen des Vergleichstrings
  408.       CLR pt%                   ! Papierzähler löschen
  409.       CLR ft%                   ! Steinzähler löschen
  410.       CLR sc%                   ! Schrenzähler löschen
  411.       gefunden%=FALSE           ! Eingangswert für die Schleife
  412.       WHILE NOT gefunden%
  413.         x%=INSTR(i%,h$,su$)     ! Position im Vergleichstring
  414.         IF x%>0 AND (x%<>lg%-tf%+1) THEN
  415.           x$=MID$(h$,x%+tf%+1,1)! Spielart merken
  416.           IF x$="p" THEN        ! Papier
  417.             INC pt%             ! Papierzähler plus 1
  418.           ELSE IF x$="s"        ! Schere
  419.             INC sc%             ! Scherenzähler plus 1
  420.           ELSE IF x$="f"        ! Stein
  421.             INC ft%             ! Steinzähler plus 1
  422.           ELSE                  ! keine Erkennung
  423.             auswahl             ! dann per Zufall auswählen
  424.           ENDIF
  425.           i%=x%+1               ! Position im Vergleichsstring
  426.         ELSE                    !
  427.           gefunden%=TRUE        ! Schleife abbrechen
  428.         ENDIF
  429.       WEND
  430.       IF pt%+sc%+ft%=0 THEN     ! keine Spielzüge gefunden
  431.         fertig%=TRUE            ! dann aufhören
  432.       ELSE
  433.         INC tf%                 ! Tiefe plus 1
  434.         p%=pt%                  ! Papier
  435.         s%=sc%                  ! Schere
  436.         st%=ft%                 ! Stein
  437.       ENDIF
  438.     ELSE
  439.       fertig%=TRUE              ! dann aufhören
  440.     ENDIF
  441.   WEND
  442.   IF st%=0 AND s%=0 AND p%=0 THEN! keine Ableitung aus den Spielzügen
  443.     o$="s"                      ! annehmen, daß der Spieler Schere wählte
  444.     IF RND(99)>0.5 THEN         ! Spielerzug per Zufall ermitteln
  445.       o$="p"                    ! annehmen, daß der Spieler Papier wählte
  446.     ELSE IF RND(99)>0.5         ! Spielerzug per Zufall ermitteln
  447.       o$="f"                    ! annehmen, daß der Spieler Stein wählte
  448.     ENDIF
  449.   ELSE                          ! Spielzüge des Spielers auswerten
  450.     IF st%>s% AND st%>=p% THEN  ! mehr Steine als Schere und Papier?
  451.       o$="f"                    ! ja, dann für den Spieler Steinwahl annehmen
  452.       m$="p"                    ! dann nehme ich Papier zum Einwickeln
  453.       c$="Papier"
  454.     ELSE IF p%>=s% AND p%>=st%  ! mehr Papier als Schere und Stein?
  455.       o$="p"                    ! ja, dann für den Spieler Papierwahl annehmen
  456.       m$="s"                    ! dann nehme ich Schere zum Zerschneiden
  457.       c$="Schere"
  458.     ELSE                        !
  459.       o$="s"                    ! nein, dann annehmen der Spieler wählte Schere
  460.       m$="f"                    ! dann nehme ich den Stein zum Schleifen
  461.       c$="Stein"
  462.     ENDIF
  463.   ENDIF
  464. RETURN
  465. PROCEDURE spielstaerke          ! Spielstärke abfragen
  466.   programmfuss                  ! Menüs löschen
  467.   spielstaerke%=-1              ! Eingangswert für die Schleife
  468.   WHILE spielstaerke%<0 OR spielstaerke%>1
  469.     PRINT AT(4,28);"0 = gleiche Chancen, 1 = Computer mit Lernmodus."
  470.     PRINT AT(4,31);"Spielstärke 0 oder 1 ";
  471.     INPUT x$
  472.     spielstaerke%=VAL(x$)       ! Spielstärke umwandeln
  473.   WEND
  474.   programmfuss                  ! Menüs löschen
  475. RETURN
  476. PROCEDURE auswahl               ! Auswahl per Zufall
  477.   o$="s"                        ! annehmen, daß der Spieler Schere wählte
  478.   m$="f"                        ! dann nehme ich den Stein zum Schleifen
  479.   c$="Stein"
  480.   IF RND(99)>0.5 THEN           ! Spielerzug per Zufall ermitteln
  481.     o$="p"                      ! annehmen, daß der Spieler Papier wählte
  482.     m$="s"                      ! dann nehme ich Schere zum Zerschneiden
  483.     c$="Schere"
  484.   ELSE IF RND(99)>0.5           ! Spielerzug per Zufall ermitteln
  485.     o$="f"                      ! annehmen, daß der Spieler Stein wählte
  486.     m$="p"                      ! dann nehme ich Papier zum Einwickeln
  487.     c$="Papier"
  488.   ENDIF
  489. RETURN
  490. REM
  491.